package com.atguigu.java;

import org.junit.jupiter.api.Test;

import java.util.Arrays;
import java.util.List;

/**
 *      java.util.Arrays:操作数组的工具类，里面定义了很多操作数组的方法
 *
 * @author : leimingchao
 * @date Date : 2021年07月24日 17:52
 */
public class ArraysTest {

    public static void main(String[] args) {

        // 1.boolean equals(int[] a,int[] b) 判断两个数组是否相等。
        int[] arr1 = new int[] {1,2,3,4};
        int[] arr2 = new int[] {1,3,2,4};
        boolean isEqual = Arrays.equals(arr1, arr2);
        System.out.println(isEqual);

        // 2.String toString(int[] a) 输出数组信息。
        System.out.println(Arrays.toString(arr1));

        // 3.void fill(int[] a,int val) 将指定值填充到数组之中。
        Arrays.fill(arr1,10);
        System.out.println(Arrays.toString(arr1));

        // 4.void sort(int[] a) 对数组进行排序。
        Arrays.sort(arr2);
        System.out.println(Arrays.toString(arr2));

        // 5.int binarySearch(int[] a,int key) 对排序后的数组进行二分法检索指定的值。
        int[] arr3 = new int[]{-98, -34, 2, 34, 54, 66, 79, 105, 210, 333};
        int index = Arrays.binarySearch(arr3, 211);
        if (index >= 0) {
            System.out.println(index);
        } else {
            System.out.println("未找到");
        }
    }

    @Test
    public void testArrays() {

        //使用Arrays.asList()创建的list属于java.util.Arrays.ArrayList，只能做read操作，如果做write操作，抛出异常
        List<Integer> list = Arrays.asList(1, 2, 3, 4);

        //java.lang.UnsupportedOperationException
        // list.add(3);

        //java.lang.UnsupportedOperationException
        // list.remove(1);

        //底层调用java.util.AbstractList.remove(),java.lang.UnsupportedOperationException
        //list.clear();
    }
}
